Software vendors recognize the benefits of enabling third-party developers the capability to develop and have distributed third-party software (e.g., plugins) to numerous connected consumers. An application server can be a general purpose server on which the vendors can develop and deploy plugins, and deployed as a middle tier of a search stack that serves billions of search queries. Each plugin can be developed as a binary package (assembly) in a way to provide metadata, which metadata can be read by the application server to configure and load the plugins, and then run the plugins.
However, a significant problem with this approach is that vendors typically build from the same sources and create binaries which differ without any real semantic difference. Thus, it can be the case that thousands of copies of substantially redundant binaries are loaded, albeit in a different package. Moreover, these thousands of assemblies, many of which are redundant, can be loaded on tens of thousands of machines in a data center, which results in an enormous waste in computing resources such as at least memory.